package mediatheque.model;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class LivreModel extends DocumentModel {

	private static final long serialVersionUID = -2875006103091633245L;

	private String auteur;
	private String editeur;
	private String ISBN;

	private static int NOMBRE_LIVRES = 0;

	public LivreModel() {
		this("N/A", "N/A", "N/A",  "N/A", "N/A", "N/A", true, null);
	}

	public LivreModel(String auteur, String editeur, String ISBN, 
			String nom, String etat, String description, boolean empruntable,
			ArrayList<String> listeTheme) {

		super("Livre", nom, etat, description, empruntable, listeTheme);

		this.auteur = auteur;
		this.editeur = editeur;
		this.ISBN = ISBN;

		NOMBRE_LIVRES++;
		this.setIdentifiant(genererIdentifiant());
	}

	private String genererIdentifiant() {
		return "LI-" + NOMBRE_LIVRES;
	}

	public String getAuteur() {
		return auteur;
	}

	public String getEditeur() {
		return editeur;
	}

	public String getISBN() {
		return ISBN;
	}

	public void setAuteur(String auteur) {
		this.auteur = auteur;
	}

	public void setEditeur(String editeur) {
		this.editeur = editeur;
	}

	public void setISBN(String iSBN) {
		ISBN = iSBN;
	}

	public static String getIdentifiantUnique() {
		return "LI-" + NOMBRE_LIVRES;
	}

	private void writeObject(ObjectOutputStream oos) throws IOException {
		oos.defaultWriteObject();
		oos.writeObject(new Integer(NOMBRE_LIVRES));
	}

	private void readObject(ObjectInputStream ois)
			throws ClassNotFoundException, IOException {
		ois.defaultReadObject();
		NOMBRE_LIVRES = (Integer) ois.readObject();
	}

}
